const fs = require('fs');
const path = require('path');

const filepath = path.resolve('./a')
rm(filepath)


// 删除文件或目录
function rm(dirpath) {
  if (!fs.existsSync(dirpath)) return;

  if (fs.statSync(dirpath).isFile()) { // 你是一个文件
    fs.unlinkSync(dirpath)
  } else {
    // 当前目录下面的目录数组
    let dirs = fs.readdirSync(dirpath)
    if (dirs.length == 0) {
      fs.rmdirSync(dirpath)
    } else {
      // 有绝对路径的数组
      dirs = dirs.map(dir => path.join(dirpath, dir))
      dirs.forEach(dir => {
        if (fs.statSync(dir).isDirectory()) {
          rm(dir)
        } else {
          fs.unlinkSync(dir);
        }
      })
    }
    // 顶层目录
    fs.rmdirSync(dirpath);
  }
}